Bài học Scratch cho học sinh THCS

Biến đếm điểm, thời gian và hiển thị thông tin

Học cách lưu điểm số, đếm ngược thời gian và đưa thông tin quan trọng lên sân khấu để người chơi luôn biết mình đang ở đâu trong game.

Biến — "hộp nhớ" của dự án

Biến (variable) là nơi Scratch lưu một giá trị có thể thay đổi trong lúc chạy: điểm số, số mạng, thời gian còn lại, tên người chơi… Mỗi biến có tên riêng để bạn gọi lại trong các khối lệnh.

Nhóm khối Biến trong Scratch
Nhóm Biến (màu cam) chứa các khối tạo, đặt và thay đổi giá trị

Khi tạo biến mới, Scratch hỏi biến thuộc về toàn sân khấu hay chỉ nhân vật này:

Cho tất cả sprites Mọi nhân vật dùng chung một giá trị — phù hợp cho điểm, thời gian, cấp độ.
Chỉ cho sprite này Mỗi nhân vật có bản sao riêng — phù hợp cho máu từng kẻ thù, tốc độ riêng.
💡 Ghi nhớ

Hai khối quan trọng nhất: đặt … thành (gán giá trị mới) và thay đổi … thêm (cộng/trừ dần). Điểm số thường bắt đầu bằng đặt điểm thành 0, sau đó thay đổi điểm thêm 10 mỗi khi ăn táo.

Biến đếm điểm trong game

Điểm số là ứng dụng phổ biến nhất của biến. Quy trình cơ bản gồm ba bước: khởi tạo khi bắt đầu, cập nhật khi có sự kiện, kiểm tra điều kiện thắng/thua.

khi nhấn cờ xanh
  đặt [điểm v] thành [0]

khi nhấn vào nhân vật này
  thay đổi [điểm v] thêm [1]
  phát tiếng [pop v]
📌 Ví dụ: Thắng khi đủ 50 điểm

Thêm script song song:

khi nhấn cờ xanh
  đợi đến khi <(điểm) > [49]>
  nói [Bạn thắng!] trong [3] giây
  dừng [tất cả v]

Hiển thị nhiều thông số cùng lúc

Game thường cần vài biến song song:

điểm Tăng khi làm đúng, giảm khi phạm lỗi
mạng Giảm khi chạm kẻ thù, game over khi = 0
cấp Tăng mỗi khi hoàn thành màn chơi

Đếm thời gian trong Scratch

Có hai cách chính để theo dõi thời gian: dùng đồng hồ có sẵn của Scratch hoặc tự tạo biến đếm ngược.

Đồng hồ (Timer) — nhóm Cảm biến

Scratch có sẵn giá trị đồng hồ đếm số giây kể từ khi bạn đặt đồng hồ về 0. Không cần tạo biến riêng — chỉ cần bật hiển thị bằng cách tick ô vuông cạnh khối đồng hồ trong palette Cảm biến.

Nhóm khối Cảm biến có đồng hồ
Khối đồng hồ nằm trong nhóm Cảm biến (màu xanh nhạt)
khi nhấn cờ xanh
  đặt [đồng hồ v] về [0]
  đợi đến khi <(đồng hồ) > [30]>
  nói [Hết giờ!] trong [2] giây

Đoạn trên chờ 30 giây rồi thông báo hết giờ — hữu ích cho game giới hạn thời gian.

Biến đếm ngược tự tạo

Khi cần hiển thị "còn 60, 59, 58…" thay vì "đã chạy 1, 2, 3…", hãy dùng biến giây còn lại:

📌 Ví dụ: Đếm ngược 10 giây
khi nhấn cờ xanh
  đặt [giây còn lại v] thành [10]
  lặp đến khi <(giây còn lại) = [0]>
    đợi [1] giây
    thay đổi [giây còn lại v] thêm [-1]
  kết thúc
  nói [Bắt đầu!] trong [2] giây
💡 Ghi nhớ

Đồng hồ đếm tăng dần (thời gian đã trôi). Biến đếm ngược đếm giảm dần (thời gian còn lại). Chọn cách nào tùy cách bạn muốn người chơi nhìn thấy trên màn hình.

Hiển thị thông tin trên sân khấu (Stage Monitor)

Khi tạo biến, Scratch mặc định hiện một hộp hiển thị (stage monitor) trên sân khấu — nơi người chơi đọc được điểm, thời gian hay máu. Đây là cách đơn giản nhất để "giao diện" game mà không cần vẽ thêm sprite.

Bật và tắt hiển thị

khi nhấn cờ xanh
  hiện biến [điểm v]
  ẩn biến [mật khẩu v]

Kéo thả vị trí

Trong màn hình soạn thảo, bạn có thể kéo hộp hiển thị đến góc trên, giữa màn hoặc bất kỳ chỗ nào trên sân khấu. Vị trí được lưu cùng dự án.

Ba kiểu hiển thị biến

Nhấp chuột phải lên hộp hiển thị (hoặc double-click) để đổi kiểu:

Thường Hiện tên biến + giá trị — dễ hiểu nhất
Lớn Chỉ hiện số to — phù hợp điểm, đồng hồ
Thanh trượt Kéo để đổi giá trị — tiện khi test hoặc chỉnh âm lượng
Logo Scratch
Stage monitor giúp người chơi theo dõi thông tin mà không cần sprite riêng cho từng dòng chữ
📌 Mẹo bố cục HUD game

Đặt điểm góc trên trái (kiểu lớn), mạng góc trên phải, giây còn lại giữa trên — tạo bảng thông tin (HUD) quen thuộc như game điện tử.

Kết hợp điểm, thời gian và điều kiện kết thúc

Game hoàn chỉnh thường kết thúc khi hết giờ, đủ điểm hoặc hết mạng. Bạn có thể dùng nhiều script song song, mỗi script theo dõi một điều kiện:

khi nhấn cờ xanh
  đặt [điểm v] thành [0]
  đặt [mạng v] thành [3]
  đặt [giây còn lại v] thành [60]
  hiện biến [điểm v]
  hiện biến [mạng v]
  hiện biến [giây còn lại v]

Script riêng kiểm tra thua khi mạng = 0, script khác kiểm tra thắng khi điểm ≥ 100, script thứ ba đếm ngược giây còn lại và dừng game khi về 0.

💡 Ghi nhớ

Khi debug, bật stage monitor cho biến nghi ngờ lỗi — nhìn giá trị thay đổi theo thời gian thực giúp bạn tìm bug nhanh hơn đọc cả đống khối lệnh.

Mẹo và lỗi thường gặp

Quên đặt lại giá trị khi cờ xanh

Chạy game lần hai mà điểm vẫn là 80 từ lần trước — do thiếu đặt điểm thành 0 trong script khởi động. Luôn reset mọi biến quan trọng khi khi nhấn cờ xanh.

Nhầm "đặt" và "thay đổi"

Đặt điểm thành 10 gán đúng 10. Thay đổi điểm thêm 10 cộng thêm 10 vào giá trị hiện tại. Dùng sai sẽ khiến điểm nhảy lung tung.

Ẩn biến quan trọng

Nếu người chơi không thấy điểm hoặc đồng hồ, kiểm tra ô tick trong palette và khối hiện biến — có thể script đã gọi ẩn biến trước đó.

⚠️ Lỗi phổ biến

Dùng biến cho tất cả sprites khi mỗi nhân vật cần máu riêng — mọi kẻ thù cùng chia một thanh máu. Hãy chọn chỉ cho sprite này cho thuộc tính cá nhân.

  1. Đặt tên biến ngắn, rõ (điểm, mạng, giây còn lại).
  2. Reset biến khi cờ xanh; hiện monitor cần thiết.
  3. Kéo monitor đến vị trí đẹp; chọn kiểu hiển thị phù hợp.
  4. Viết script cập nhật điểm/thời gian khi có sự kiện.
  5. Thêm điều kiện thắng/thua dựa trên giá trị biến.

Dự án thực hành: Game săn sao 60 giây

Xây dựng game đơn giản: trong 60 giây, nhấn vào sao xuất hiện ngẫu nhiên để ghi điểm.

📌 Gợi ý triển khai
  1. Biến điểm, giây còn lại — cho tất cả sprites, kiểu hiển thị lớn.
  2. Cờ xanh: đặt điểm = 0, giây còn lại = 60, hiện cả hai monitor.
  3. Script đếm ngược: mỗi giây giảm giây còn lại; khi = 0 → nói điểm cuối, dừng tất cả.
  4. Sao: mỗi lần nhấn → thay đổi điểm thêm 1, đi tới vị trí ngẫu nhiên, phát âm thanh.
  5. Thắng sớm: nếu điểm ≥ 30 trước khi hết giờ → thông báo "Xuất sắc!".
💡 Ghi nhớ

Biến và stage monitor là nền tảng của mọi game Scratch có luật chơi rõ ràng. Thành thạo phần này, bạn đã có thể làm quiz, đua xe, phiêu lưu và nhiều thể loại khác.